/** When your routing table is too long, you can split it into small modules**/

import Layout from '@/layout'
import RangeLineView from '@/views/four/index.vue'
import { generateRangeRoutes } from '@/utils/study.js'

const CATE_VALUE_STRING = 'Four'
const CATE_VALUE_PREFIX = `${CATE_VALUE_STRING.toUpperCase()}_`

const rangeList = generateRangeRoutes(CATE_VALUE_PREFIX, CATE_VALUE_STRING, RangeLineView, true)

const chartsRouter = {
  path: '/four',
  component: Layout,
  redirect: 'noRedirect',
  name: 'Cate' + CATE_VALUE_STRING,
  meta: {
    title: '÷12 four',
    icon: 'line-chart'
  },
  children: [
    {
      path: 'ascending',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Ascending',
      meta: {
        title: 'ascending',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'ASCENDING_GROUPS'
      }
    },
    {
      path: 'odd-even',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'OddEven',
      meta: {
        title: 'odd even',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'ODD_EVEN_GROUPS'
      }
    },
    {
      path: 'mantissa',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Mantissa',
      meta: {
        title: 'mantissa',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'MANTISSA_GROUPS'
      }
    },

    {
      path: 'skipped',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Skipped',
      meta: {
        title: 'skipped',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'SKIPPED_GROUPS'
      }
    },

    {
      path: 'prime',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Prime',
      meta: {
        title: 'prime',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'PRIME_GROUPS'
      }
    },
    {
      path: 'cross-mantissa',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'CrossMantissa',
      meta: {
        title: 'cross mantissa',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'CROSS_MANTISSA_GROUPS'
      }
    },
    {
      path: 'cumulative-sum',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'CumulativeSum',
      meta: {
        title: 'cumulative sum',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'CUMULATIVE_SUM_GROUPS'
      }
    },
    {
      path: 'mirror',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Mirror',
      meta: {
        title: 'mirror',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'MIRROR_GROUPS'
      }
    },
    {
      path: 'prime-composite',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'PrimeComposite',
      meta: {
        title: 'prim composite',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'PRIME_COMPOSITE_GROUPS'
      }
    },
    {
      path: 'double-alternate',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'DoubleAlternate',
      meta: {
        title: 'double alternate',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'DOUBLE_ALTERNATE_GROUPS'
      }
    },
    {
      path: 'symmetric-tail-expansion',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'SymmetricTailExpansion',
      meta: {
        title: 'symmetric tail expansion',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'SYMMETRIC_TAIL_EXPANSION_GROUPS'
      }
    },
    {
      path: 'skipped-sum',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'SkippedSum',
      meta: {
        title: 'skipped sum',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'SKIPPED_SUM_GROUPS'
      }
    },

    {
      path: 'center-symmetric',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'CenterSymmetric',
      meta: {
        title: 'center symmetric',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'CENTER_SYMMETRIC_GROUPS'
      }
    },

    {
      path: 'oddeven-symmetric',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'OddEvenSymmetric',
      meta: {
        title: 'oddeven symmetric',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'ODD_EVEN_SYMMETRIC_GROUPS'
      }
    },

    {
      path: 'quadrant',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Quadrant',
      meta: {
        title: 'quadrant',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'QUADRANT_GROUPS'
      }
    },

    {
      path: 'pyramid',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Pyramid',
      meta: {
        title: 'pyramid',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'PYRAMID_GROUPS'
      }
    },

    {
      path: 'inverted-pyramid',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'InvertedPyramid',
      meta: {
        title: 'inverted pyramid',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'INVERTED_PYRAMID_GROUPS'
      }
    },

    {
      path: 'fold-back',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'FoldBack',
      meta: {
        title: 'fold back',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'FOLDBACK_GROUPS'
      }
    },

    {
      path: 'diagonal',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Diagonal',
      meta: {
        title: 'diagonal',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'DIAGONAL_GROUPS'
      }
    },

    {
      path: 'difference',
      component: RangeLineView,
      name: CATE_VALUE_STRING + 'Difference',
      meta: {
        title: 'difference',
        noCache: true,
        groupsKey: CATE_VALUE_PREFIX + 'DIFFERENCE_GROUPS'
      }
    },
    ...rangeList
  ]
}

export default chartsRouter
